package builder;

import java.util.Vector;

import model.Action;

public class BuilderBuilder extends AbstractPatternBuilder {

	private String director = "Director";
	private String builder = "Builder";
	private String concreteBuilder = "ConcreteBuilder";
	private String product = "Product";
	
	public BuilderBuilder() {
		super();
	}

	@Override
	public Vector<Action> buildPattern() {
		
		this.buildClass(director);
		this.buildClass(concreteBuilder);
		this.buildClass(product);
		
		this.buildAbstractClass(builder);
		
		this.buildGeneralization(concreteBuilder, builder);
		
		this.buildAggregation(builder, director);
		
		this.buildDependency(concreteBuilder, product);

		return patternActions;
	}

	@Override
	public void changeNames() {

		this.director = names.get(0);
		this.builder = names.get(1);
		this.concreteBuilder = names.get(2);
		this.product = names.get(3);
		
	}
	
	@Override
	public int cantUMLElements() {
		return 4;
	}

}
